Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable expandos for type-annotated function expressions in TS #61072

Conversation

sandersn
Copy link
Member

@sandersn sandersn commented Jan 29, 2025

Thanks to Anders for noticing that this works in TS, but shouldn't. Unfortunately, he noticed in VSCode's repo, which makes me worried that it's widespread.

This only works in TS because assignment declarations from JS are incorrectly applied:

interface F {
  (): 1
  p: 2
}
const f: F = () => 1
f.p = 2 

The correct way to write it is

interface F {
  () : 1
  p: 2
}
const f = (() => 1) as F
f.p = 2

We discussed whether the unannotated version makes sense in TS either, and I think we'd both prefer to remove it if we can.
Update: That's what the PR now implements; I'm running tests and will write analysis when they're done.

Results from removing Type-annotated only

There are 15 total failures, only 4 of which are React.FC usage. Most usages are local types, with only one or two from other projects. Overall I think that shows not very much usage of this feature. We should discuss removing it at another design meeting.

DT (3)

  • styled-components, hyper-function-component are both the expected React-style uses.
  • codemirror is not

User tests (1)

  • postcss's test code, provided by a postcss expert, uses a typed expando.

top400 (12)

  • ajv-validator - own
  • apollographql (2) - own
  • docusaurus - type from stylelint
  • formatjs - React.FC
  • stimulus (2) - own
  • vscode (3) - own (twice)
  • radix-ui/primitives (4) - own, but inspired by React
  • sequelize (2) - own
  • sindresorhus/ky (2) - own, a fairly complex constructor pattern
  • supabase - React.FC
  • agentic - own

Results from removing all in TS

DT (5)

  • react-currency-formats, styled-components, hyper-function-component are both the expected React-style uses.
  • codemirror is not
  • nor is uikit

User tests (1)

  • postcss's test code, provided by a postcss expert, uses a typed expando.

@sandersn
Copy link
Member Author

@typescript-bot test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 29, 2025

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started 👀 Results
user test this ✅ Started
run dt ✅ Started 👀 Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @sandersn, the results of running the DT tests are ready.

There were interesting changes:

Branch only errors:

Package: codemirror
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/codemirror/test/addon/hint/show-hint.ts
  33:7  error  TypeScript@local compile error: 
Property 'async' is missing in type '(cm: CodeMirror.Editor, callback: (hints: CodeMirror.Hints) => any) => void' but required in type 'AsyncHintFunction'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: styled-components
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/styled-components/test/index.tsx
  1198:11  error  TypeScript@local compile error: 
Type '() => React.JSX.Element' is not assignable to type 'FC<{}> & { A: typeof A; F: () => void; }'.
  Type '() => React.JSX.Element' is not assignable to type '{ A: typeof A; F: () => void; }'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: hyper-function-component
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/hyper-function-component/hyper-function-component-tests.ts
  1:7  error  TypeScript@local compile error: 
Type '(container: Element, props: HfcProps) => { changed(props: HfcProps): void; disconnected(): void; }' is not assignable to type 'HyperFunctionComponent'.
  Type '(container: Element, props: HfcProps) => { changed(props: HfcProps): void; disconnected(): void; }' is not assignable to type '{ tag: string; hfc: string; ver: string; names: [string[], string[], string[]]; }'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

You can check the log here.

@typescript-bot
Copy link
Collaborator

@sandersn
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 34 34 ~ ~ ~ p=1.000 n=6
Symbols 62,390 62,388 -2 (- 0.00%) ~ ~ p=0.001 n=6
Types 50,395 50,395 ~ ~ ~ p=1.000 n=6
Memory used 194,982k (± 1.03%) 194,384k (± 0.99%) ~ 193,069k 196,997k p=1.000 n=6
Parse Time 1.31s (± 1.25%) 1.30s (± 1.02%) ~ 1.28s 1.31s p=0.720 n=6
Bind Time 0.73s 0.73s ~ ~ ~ p=1.000 n=6
Check Time 9.75s (± 0.22%) 9.72s (± 0.38%) ~ 9.69s 9.78s p=0.258 n=6
Emit Time 2.74s (± 0.44%) 2.74s (± 0.97%) ~ 2.70s 2.78s p=0.935 n=6
Total Time 14.52s (± 0.18%) 14.49s (± 0.26%) ~ 14.43s 14.53s p=0.258 n=6
angular-1 - node (v18.15.0, x64)
Errors 37 37 ~ ~ ~ p=1.000 n=6
Symbols 948,493 948,428 -65 (- 0.01%) ~ ~ p=0.001 n=6
Types 411,005 411,005 ~ ~ ~ p=1.000 n=6
Memory used 1,225,432k (± 0.00%) 1,225,397k (± 0.00%) ~ 1,225,338k 1,225,458k p=0.630 n=6
Parse Time 6.61s (± 0.87%) 6.65s (± 0.88%) ~ 6.57s 6.71s p=0.172 n=6
Bind Time 1.88s (± 0.73%) 1.90s (± 0.55%) ~ 1.88s 1.91s p=0.249 n=6
Check Time 32.00s (± 0.56%) 31.92s (± 0.28%) ~ 31.78s 32.04s p=0.375 n=6
Emit Time 15.23s (± 0.44%) 15.21s (± 0.44%) ~ 15.12s 15.30s p=0.630 n=6
Total Time 55.72s (± 0.40%) 55.68s (± 0.15%) ~ 55.55s 55.79s p=0.748 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,447,050 2,447,042 -8 (- 0.00%) ~ ~ p=0.001 n=6
Types 898,533 898,533 ~ ~ ~ p=1.000 n=6
Memory used 2,307,728k (± 0.00%) 2,307,708k (± 0.00%) ~ 2,307,672k 2,307,758k p=0.230 n=6
Parse Time 8.95s (± 0.54%) 8.95s (± 0.33%) ~ 8.89s 8.97s p=0.809 n=6
Bind Time 2.17s (± 0.38%) 2.17s (± 0.61%) ~ 2.15s 2.19s p=0.612 n=6
Check Time 74.42s (± 0.51%) 74.40s (± 0.49%) ~ 74.10s 75.08s p=0.810 n=6
Emit Time 0.28s (± 1.82%) 0.28s (± 2.26%) ~ 0.27s 0.29s p=0.386 n=6
Total Time 85.83s (± 0.47%) 85.80s (± 0.42%) ~ 85.52s 86.50s p=1.000 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,229,397 1,229,375 -22 (- 0.00%) ~ ~ p=0.001 n=6
Types 267,085 267,085 ~ ~ ~ p=1.000 n=6
Memory used 2,362,318k (± 0.02%) 2,362,094k (± 0.02%) ~ 2,361,323k 2,362,611k p=0.936 n=6
Parse Time 5.20s (± 0.81%) 5.22s (± 0.68%) ~ 5.17s 5.27s p=0.470 n=6
Bind Time 1.79s (± 0.96%) 1.79s (± 0.35%) ~ 1.78s 1.80s p=1.000 n=6
Check Time 35.37s (± 0.40%) 35.23s (± 0.43%) ~ 35.10s 35.52s p=0.230 n=6
Emit Time 3.04s (± 1.05%) 3.07s (± 1.42%) ~ 3.02s 3.15s p=0.336 n=6
Total Time 45.41s (± 0.34%) 45.33s (± 0.28%) ~ 45.19s 45.56s p=0.336 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,229,397 1,229,375 -22 (- 0.00%) ~ ~ p=0.001 n=6
Types 267,085 267,085 ~ ~ ~ p=1.000 n=6
Memory used 3,039,287k (± 9.70%) 3,039,071k (± 9.77%) ~ 2,432,211k 3,160,783k p=0.378 n=6
Parse Time 7.02s (± 2.11%) 7.04s (± 1.31%) ~ 6.90s 7.13s p=1.000 n=6
Bind Time 2.15s (± 2.88%) 2.15s (± 2.14%) ~ 2.09s 2.19s p=1.000 n=6
Check Time 42.82s (± 0.64%) 42.89s (± 0.63%) ~ 42.55s 43.21s p=0.689 n=6
Emit Time 3.47s (± 3.91%) 3.50s (± 1.46%) ~ 3.40s 3.54s p=0.471 n=6
Total Time 55.47s (± 0.77%) 55.59s (± 0.49%) ~ 55.22s 56.00s p=0.936 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 263,074 263,070 -4 (- 0.00%) ~ ~ p=0.001 n=6
Types 106,881 106,881 ~ ~ ~ p=1.000 n=6
Memory used 441,333k (± 0.02%) 441,349k (± 0.02%) ~ 441,275k 441,466k p=0.689 n=6
Parse Time 3.54s (± 0.56%) 3.56s (± 1.39%) ~ 3.49s 3.61s p=0.573 n=6
Bind Time 1.31s (± 0.92%) 1.32s (± 0.80%) ~ 1.30s 1.33s p=0.868 n=6
Check Time 18.99s (± 0.50%) 19.01s (± 0.25%) ~ 18.93s 19.06s p=0.575 n=6
Emit Time 1.53s (± 0.68%) 1.53s (± 1.07%) ~ 1.50s 1.54s p=0.869 n=6
Total Time 25.37s (± 0.36%) 25.41s (± 0.16%) ~ 25.35s 25.46s p=0.687 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 70 70 ~ ~ ~ p=1.000 n=6
Symbols 226,113 226,109 -4 (- 0.00%) ~ ~ p=0.001 n=6
Types 94,488 94,488 ~ ~ ~ p=1.000 n=6
Memory used 371,690k (± 0.00%) 371,886k (± 0.06%) +196k (+ 0.05%) 371,701k 372,236k p=0.013 n=6
Parse Time 2.90s (± 0.83%) 2.91s (± 1.48%) ~ 2.89s 3.00s p=1.000 n=6
Bind Time 1.59s (± 0.76%) 1.59s (± 1.56%) ~ 1.55s 1.62s p=0.935 n=6
Check Time 16.54s (± 0.90%) 16.48s (± 0.37%) ~ 16.42s 16.57s p=0.688 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 21.03s (± 0.77%) 20.99s (± 0.35%) ~ 20.86s 21.06s p=1.000 n=6
vscode - node (v18.15.0, x64)
Errors 3 6 🔻+3 (+100.00%) ~ ~ p=0.001 n=6
Symbols 3,272,547 3,272,487 -60 (- 0.00%) ~ ~ p=0.001 n=6
Types 1,125,151 1,125,151 ~ ~ ~ p=1.000 n=6
Memory used 3,346,871k (± 0.01%) 3,346,649k (± 0.01%) ~ 3,346,206k 3,346,977k p=0.173 n=6
Parse Time 17.97s (± 0.72%) 17.97s (± 0.51%) ~ 17.85s 18.08s p=1.000 n=6
Bind Time 5.64s (± 0.69%) 5.62s (± 0.46%) ~ 5.58s 5.65s p=0.357 n=6
Check Time 110.40s (± 2.28%) 109.27s (± 1.77%) ~ 107.53s 112.02s p=0.471 n=6
Emit Time 34.41s (± 2.53%) 34.64s (± 3.01%) ~ 33.47s 35.74s p=0.936 n=6
Total Time 168.42s (± 1.85%) 167.49s (± 1.32%) ~ 165.21s 171.25s p=0.689 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 292,550 292,550 ~ ~ ~ p=1.000 n=6
Types 119,124 119,124 ~ ~ ~ p=1.000 n=6
Memory used 446,120k (± 0.02%) 446,045k (± 0.03%) ~ 445,799k 446,233k p=0.575 n=6
Parse Time 4.10s (± 1.21%) 4.08s (± 1.27%) ~ 4.02s 4.13s p=0.627 n=6
Bind Time 1.78s (± 1.31%) 1.76s (± 0.80%) ~ 1.74s 1.78s p=0.106 n=6
Check Time 18.78s (± 0.47%) 18.94s (± 2.64%) ~ 18.65s 19.96s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.66s (± 0.23%) 24.79s (± 2.17%) ~ 24.52s 25.88s p=0.230 n=6
xstate-main - node (v18.15.0, x64)
Errors 5 6 🔻+1 (+20.00%) ~ ~ p=0.001 n=6
Symbols 555,449 555,433 -16 (- 0.00%) ~ ~ p=0.001 n=6
Types 186,146 186,146 ~ ~ ~ p=1.000 n=6
Memory used 494,621k (± 0.02%) 494,547k (± 0.03%) ~ 494,263k 494,669k p=0.689 n=6
Parse Time 4.26s (± 0.61%) 4.24s (± 0.56%) ~ 4.21s 4.26s p=0.371 n=6
Bind Time 1.52s (± 0.68%) 1.51s (± 1.08%) ~ 1.49s 1.53s p=0.286 n=6
Check Time 24.40s (± 0.35%) 24.45s (± 0.98%) ~ 24.25s 24.92s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 30.18s (± 0.27%) 30.19s (± 0.75%) ~ 30.01s 30.63s p=0.575 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@jakebailey
Copy link
Member

@typescript-bot user test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 29, 2025

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
user test this ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the user tests with tsc comparing main and refs/pull/61072/merge:

Something interesting changed - please have a look.

Details

postcss

/mnt/ts_downloads/_/m/postcss/tsconfig.json

  • [NEW] error TS2741: Property 'postcss' is missing in type '(opts?: pluginOptions | undefined) => { postcssPlugin: string; Declaration(decl: Declaration_): void; }' but required in type 'PluginCreator<pluginOptions>'.
    • /mnt/ts_downloads/_/m/postcss/index.ts(8,7)

@typescript-bot
Copy link
Collaborator

@sandersn Here are the results of running the top 400 repos with tsc comparing main and refs/pull/61072/merge:

Something interesting changed - please have a look.

Details

ajv-validator/ajv

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2741: Property 'code' is missing in type '(str: string, flags: string) => RegExp' but required in type 'RegExpEngine'.

apollographql/apollo-client

1 of 13 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2739: Type '(newValue: T | undefined) => T' is missing the following properties from type 'ReactiveVar<T>': onNextChange, attachCache, forgetCache

src/tsconfig.json

  • error TS2739: Type '(newValue: T | undefined) => T' is missing the following properties from type 'ReactiveVar<T>': onNextChange, attachCache, forgetCache

facebook/docusaurus

26 of 42 projects failed to build with the old tsc and were ignored

packages/stylelint-copyright/tsconfig.json

formatjs/formatjs

29 of 36 projects failed to build with the old tsc and were ignored

packages/react-intl/integration-tests/tsconfig.json

hotwired/stimulus

tsconfig.test.json

tsconfig.json

microsoft/vscode

5 of 55 projects failed to build with the old tsc and were ignored

src/tsconfig.tsec.json

build/tsconfig.build.json

  • error TS2741: Property 'src' is missing in type '() => EmptyDuplex' but required in type 'IncrementalCompiler'.

radix-ui/primitives

tsconfig.json

apps/ssr-testing/tsconfig.json

sequelize/sequelize

13 of 16 projects failed to build with the old tsc and were ignored

packages/utils/tsconfig.json

sindresorhus/ky

tsconfig.json

  • error TS2559: Type '(input: Input, options?: Options | undefined) => ResponsePromise' has no properties in common with type 'Partial<Mutable<KyInstance>>'.

tsconfig.dist.json

  • error TS2559: Type '(input: Input, options?: Options | undefined) => ResponsePromise' has no properties in common with type 'Partial<Mutable<KyInstance>>'.

supabase/supabase

36 of 38 projects failed to build with the old tsc and were ignored

packages/ui/tsconfig.json

  • error TS2322: Type '({ defaultActiveId, activeId, type, size, block, onChange, onClick, scrollable, wrappable, addOnBefore, addOnAfter, listClassNames, baseClassNames, refs, children: _children, }: PropsWithChildren<TabsProps>) => Element' is not assignable to type 'FC<PropsWithChildren<TabsProps>> & TabsSubComponents'.

transitive-bullshit/agentic

45 of 46 projects failed to build with the old tsc and were ignored

packages/core/tsconfig.json

  • error TS2739: Type '(input: string | Msg) => MaybePromise<Output>' is missing the following properties from type 'AIFunction<InputSchema, Output>': inputSchema, parseInput, spec, impl

@sandersn sandersn changed the title Disable type-annotated function expressions in TS Disable expandos for type-annotated function expressions in TS Jan 29, 2025
@sandersn
Copy link
Member Author

@typescript-bot test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 29, 2025

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started 👀 Results
user test this ✅ Started 👀 Results
run dt ✅ Started 👀 Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

@sandersn Here are the results of running the user tests with tsc comparing main and refs/pull/61072/merge:

Something interesting changed - please have a look.

Details

postcss

/mnt/ts_downloads/_/m/postcss/tsconfig.json

  • [NEW] error TS2741: Property 'postcss' is missing in type '(opts?: pluginOptions | undefined) => { postcssPlugin: string; Declaration(decl: Declaration_): void; }' but required in type 'PluginCreator<pluginOptions>'.
    • /mnt/ts_downloads/_/m/postcss/index.ts(8,7)

@typescript-bot
Copy link
Collaborator

Hey @sandersn, the results of running the DT tests are ready.

There were interesting changes:

Branch only errors:

Package: codemirror
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/codemirror/test/addon/hint/show-hint.ts
  33:7  error  TypeScript@local compile error: 
Property 'async' is missing in type '(cm: CodeMirror.Editor, callback: (hints: CodeMirror.Hints) => any) => void' but required in type 'AsyncHintFunction'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: uikit
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/uikit/uikit-tests.ts
  47:12  error  TypeScript@local compile error: 
Property 'installed' does not exist on type '(uikit: typeof UIkit) => void'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: styled-components
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/styled-components/test/index.tsx
  1198:11  error  TypeScript@local compile error: 
Type '() => React.JSX.Element' is not assignable to type 'FC<{}> & { A: typeof A; F: () => void; }'.
  Type '() => React.JSX.Element' is not assignable to type '{ A: typeof A; F: () => void; }'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: react-currency-format
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-currency-format/react-currency-format-tests.tsx
  73:11  error  TypeScript@local compile error: 
Property 'displayName' does not exist on type '({ title }: { title: string; }) => Element'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: hyper-function-component
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/hyper-function-component/hyper-function-component-tests.ts
  1:7  error  TypeScript@local compile error: 
Type '(container: Element, props: HfcProps) => { changed(props: HfcProps): void; disconnected(): void; }' is not assignable to type 'HyperFunctionComponent'.
  Type '(container: Element, props: HfcProps) => { changed(props: HfcProps): void; disconnected(): void; }' is not assignable to type '{ tag: string; hfc: string; ver: string; names: [string[], string[], string[]]; }'  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

You can check the log here.

@typescript-bot
Copy link
Collaborator

@sandersn
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 34 34 ~ ~ ~ p=1.000 n=6
Symbols 62,390 62,381 -9 (- 0.01%) ~ ~ p=0.001 n=6
Types 50,395 50,395 ~ ~ ~ p=1.000 n=6
Memory used 194,409k (± 0.95%) 193,132k (± 0.01%) ~ 193,112k 193,149k p=0.378 n=6
Parse Time 1.31s (± 0.31%) 1.30s (± 1.33%) ~ 1.28s 1.32s p=0.421 n=6
Bind Time 0.73s 0.73s ~ ~ ~ p=1.000 n=6
Check Time 9.76s (± 0.27%) 9.75s (± 0.16%) ~ 9.73s 9.77s p=0.871 n=6
Emit Time 2.72s (± 0.30%) 2.72s (± 0.52%) ~ 2.70s 2.74s p=0.677 n=6
Total Time 14.51s (± 0.22%) 14.50s (± 0.21%) ~ 14.46s 14.54s p=0.685 n=6
angular-1 - node (v18.15.0, x64)
Errors 37 52 🔻+15 (+40.54%) ~ ~ p=0.001 n=6
Symbols 948,493 947,798 -695 (- 0.07%) ~ ~ p=0.001 n=6
Types 411,005 411,003 -2 (- 0.00%) ~ ~ p=0.001 n=6
Memory used 1,225,448k (± 0.00%) 1,224,858k (± 0.00%) -590k (- 0.05%) 1,224,825k 1,224,871k p=0.005 n=6
Parse Time 6.65s (± 0.56%) 6.65s (± 0.86%) ~ 6.57s 6.70s p=0.520 n=6
Bind Time 1.89s (± 0.62%) 1.90s (± 0.73%) ~ 1.87s 1.91s p=0.325 n=6
Check Time 31.90s (± 0.23%) 31.96s (± 0.37%) ~ 31.83s 32.13s p=0.575 n=6
Emit Time 15.19s (± 0.41%) 15.19s (± 0.44%) ~ 15.10s 15.29s p=0.872 n=6
Total Time 55.63s (± 0.10%) 55.69s (± 0.31%) ~ 55.49s 55.95s p=0.689 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 1 🔻+1 (+ ∞%) ~ ~ p=0.001 n=6
Symbols 2,447,050 2,446,050 -1,000 (- 0.04%) ~ ~ p=0.001 n=6
Types 898,533 898,533 ~ ~ ~ p=1.000 n=6
Memory used 2,307,707k (± 0.00%) 2,306,885k (± 0.00%) -822k (- 0.04%) 2,306,845k 2,306,930k p=0.005 n=6
Parse Time 8.92s (± 0.16%) 8.93s (± 0.16%) ~ 8.91s 8.95s p=0.413 n=6
Bind Time 2.18s (± 0.41%) 2.18s (± 0.37%) ~ 2.16s 2.18s p=0.654 n=6
Check Time 74.14s (± 0.47%) 74.38s (± 0.36%) ~ 74.09s 74.81s p=0.378 n=6
Emit Time 0.28s (± 1.86%) 0.28s (± 1.47%) ~ 0.27s 0.28s p=0.595 n=6
Total Time 85.51s (± 0.41%) 85.77s (± 0.30%) ~ 85.50s 86.17s p=0.336 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 2 🔻+2 (+ ∞%) ~ ~ p=0.001 n=6
Symbols 1,229,397 1,312,697 🔻+83,300 (+ 6.78%) ~ ~ p=0.001 n=6
Types 267,085 267,173 +88 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 2,362,427k (± 0.01%) 2,500,685k (± 0.02%) 🔻+138,258k (+ 5.85%) 2,500,005k 2,501,289k p=0.005 n=6
Parse Time 5.23s (± 0.22%) 6.94s (± 0.64%) 🔻+1.71s (+32.67%) 6.87s 7.00s p=0.005 n=6
Bind Time 1.78s (± 0.91%) 2.51s (± 1.15%) 🔻+0.72s (+40.47%) 2.47s 2.54s p=0.005 n=6
Check Time 35.27s (± 0.15%) 35.34s (± 0.39%) ~ 35.13s 35.53s p=0.230 n=6
Emit Time 3.02s (± 0.50%) 3.08s (± 4.82%) ~ 2.96s 3.37s p=0.936 n=6
Total Time 45.32s (± 0.11%) 47.87s (± 0.47%) 🔻+2.55s (+ 5.62%) 47.63s 48.28s p=0.005 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 2 🔻+2 (+ ∞%) ~ ~ p=0.001 n=6
Symbols 1,229,397 1,312,697 🔻+83,300 (+ 6.78%) ~ ~ p=0.001 n=6
Types 267,085 267,173 +88 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 3,038,739k (± 9.75%) 3,062,105k (±12.28%) ~ 2,574,656k 3,306,283k p=0.230 n=6
Parse Time 6.98s (± 1.37%) 9.07s (± 0.76%) 🔻+2.09s (+30.01%) 8.96s 9.14s p=0.005 n=6
Bind Time 2.16s (± 1.73%) 2.92s (± 1.18%) 🔻+0.76s (+35.03%) 2.86s 2.96s p=0.005 n=6
Check Time 42.88s (± 0.35%) 42.78s (± 0.45%) ~ 42.52s 43.08s p=0.471 n=6
Emit Time 3.47s (± 1.19%) 3.50s (± 2.57%) ~ 3.39s 3.60s p=0.748 n=6
Total Time 55.50s (± 0.32%) 58.28s (± 0.38%) 🔻+2.78s (+ 5.01%) 57.90s 58.53s p=0.005 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 263,074 263,047 -27 (- 0.01%) ~ ~ p=0.001 n=6
Types 106,881 106,881 ~ ~ ~ p=1.000 n=6
Memory used 441,323k (± 0.02%) 441,258k (± 0.01%) ~ 441,198k 441,359k p=0.173 n=6
Parse Time 3.57s (± 0.92%) 3.57s (± 0.79%) ~ 3.52s 3.60s p=1.000 n=6
Bind Time 1.31s (± 0.68%) 1.31s (± 0.57%) ~ 1.30s 1.32s p=0.798 n=6
Check Time 18.99s (± 0.44%) 19.00s (± 0.28%) ~ 18.92s 19.06s p=0.747 n=6
Emit Time 1.52s (± 0.99%) 1.52s (± 0.83%) ~ 1.51s 1.54s p=1.000 n=6
Total Time 25.39s (± 0.41%) 25.41s (± 0.27%) ~ 25.30s 25.50s p=0.688 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 70 70 ~ ~ ~ p=1.000 n=6
Symbols 226,113 226,081 -32 (- 0.01%) ~ ~ p=0.001 n=6
Types 94,488 94,488 ~ ~ ~ p=1.000 n=6
Memory used 371,760k (± 0.03%) 371,758k (± 0.03%) ~ 371,670k 371,980k p=0.748 n=6
Parse Time 3.62s (± 0.35%) 3.61s (± 1.75%) ~ 3.54s 3.69s p=0.462 n=6
Bind Time 1.98s (± 1.13%) 1.96s (± 0.88%) ~ 1.93s 1.98s p=0.405 n=6
Check Time 20.41s (± 0.37%) 20.40s (± 0.23%) ~ 20.32s 20.46s p=1.000 n=6
Emit Time 0.00s 0.00s (±244.70%) ~ 0.00s 0.01s p=0.405 n=6
Total Time 26.01s (± 0.30%) 25.98s (± 0.40%) ~ 25.84s 26.12s p=0.521 n=6
vscode - node (v18.15.0, x64)
Errors 3 6 🔻+3 (+100.00%) ~ ~ p=0.001 n=6
Symbols 3,272,246 3,270,568 -1,678 (- 0.05%) ~ ~ p=0.001 n=6
Types 1,125,114 1,125,114 ~ ~ ~ p=1.000 n=6
Memory used 3,346,452k (± 0.01%) 3,345,148k (± 0.01%) -1,304k (- 0.04%) 3,344,742k 3,345,554k p=0.005 n=6
Parse Time 14.63s (± 0.40%) 14.68s (± 0.63%) ~ 14.61s 14.84s p=0.573 n=6
Bind Time 4.60s (± 0.37%) 4.60s (± 0.58%) ~ 4.57s 4.63s p=0.936 n=6
Check Time 89.36s (± 1.43%) 92.02s (± 2.48%) +2.66s (+ 2.97%) 89.62s 95.43s p=0.031 n=6
Emit Time 28.47s (± 3.22%) 26.91s (± 9.48%) ~ 23.04s 29.19s p=0.378 n=6
Total Time 137.06s (± 0.89%) 138.22s (± 1.36%) ~ 135.05s 140.30s p=0.173 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 292,550 292,550 ~ ~ ~ p=1.000 n=6
Types 119,124 119,124 ~ ~ ~ p=1.000 n=6
Memory used 446,054k (± 0.05%) 446,110k (± 0.03%) ~ 445,905k 446,268k p=1.000 n=6
Parse Time 5.10s (± 0.74%) 5.11s (± 1.41%) ~ 4.99s 5.17s p=0.375 n=6
Bind Time 2.22s (± 1.43%) 2.22s (± 0.89%) ~ 2.19s 2.24s p=0.683 n=6
Check Time 23.57s (± 2.92%) 23.35s (± 0.52%) ~ 23.24s 23.57s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 30.89s (± 2.07%) 30.68s (± 0.56%) ~ 30.42s 30.96s p=0.810 n=6
xstate-main - node (v18.15.0, x64)
Errors 5 6 🔻+1 (+20.00%) ~ ~ p=0.001 n=6
Symbols 555,449 555,193 -256 (- 0.05%) ~ ~ p=0.001 n=6
Types 186,146 186,146 ~ ~ ~ p=1.000 n=6
Memory used 494,603k (± 0.01%) 494,373k (± 0.03%) -231k (- 0.05%) 494,103k 494,531k p=0.005 n=6
Parse Time 3.41s (± 0.57%) 3.42s (± 0.60%) ~ 3.40s 3.46s p=0.568 n=6
Bind Time 1.20s (± 0.87%) 1.20s (± 1.25%) ~ 1.18s 1.22s p=1.000 n=6
Check Time 19.61s (± 0.33%) 19.71s (± 1.08%) ~ 19.55s 20.13s p=0.335 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.23s (± 0.27%) 24.34s (± 0.86%) ~ 24.18s 24.75s p=0.422 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@sandersn Here are the results of running the top 400 repos with tsc comparing main and refs/pull/61072/merge:

Something interesting changed - please have a look.

Details

actualbudget/actual

1 of 5 projects failed to build with the old tsc and were ignored

tsconfig.json

aidenybai/react-scan

2 of 5 projects failed to build with the old tsc and were ignored

packages/extension/tsconfig.json

ajv-validator/ajv

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2741: Property 'code' is missing in type '(str: string, flags: string) => RegExp' but required in type 'RegExpEngine'.

alan2207/bulletproof-react

apps/react-vite/tsconfig.json

apps/nextjs-pages/tsconfig.json

apps/nextjs-app/tsconfig.json

apollographql/apollo-client

1 of 13 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2739: Type '(newValue: T | undefined) => T' is missing the following properties from type 'ReactiveVar<T>': onNextChange, attachCache, forgetCache

src/tsconfig.json

  • error TS2739: Type '(newValue: T | undefined) => T' is missing the following properties from type 'ReactiveVar<T>': onNextChange, attachCache, forgetCache

blakeblackshear/frigate

web/tsconfig.json

bokeh/bokeh

8 of 14 projects failed to build with the old tsc and were ignored

bokehjs/make/tsconfig.json

CopilotKit/CopilotKit

12 of 27 projects failed to build with the old tsc and were ignored

examples/coagents-travel/ui/tsconfig.json

examples/coagents-research-canvas/ui/tsconfig.json

Dokploy/dokploy

2 of 6 projects failed to build with the old tsc and were ignored

packages/server/tsconfig.server.json

apps/dokploy/tsconfig.server.json

  • error TS2339: Property '_def' does not exist on type '(opts: ProcedureCallOptions) => Promise<unknown>'.
    • file:///mnt/ts_downloads/_/m/dokploy/node_modules/.pnpm/@trpc[email protected]/node_modules/@trpc/server/src/core/internals/procedureBuilder.ts#L403
  • error TS2339: Property 'meta' does not exist on type '(opts: ProcedureCallOptions) => Promise<unknown>'.
    • file:///mnt/ts_downloads/_/m/dokploy/node_modules/.pnpm/@trpc[email protected]/node_modules/@trpc/server/src/core/internals/procedureBuilder.ts#L404

apps/dokploy/tsconfig.json

facebook/docusaurus

26 of 42 projects failed to build with the old tsc and were ignored

packages/stylelint-copyright/tsconfig.json

faker-js/faker

tsconfig.json

FaridSafi/react-native-gifted-chat

tsconfig.json

  • error TS2339: Property 'propTypes' does not exist on type '<TMessage extends IMessage = IMessage>({ text, containerStyle, children, textStyle, label, alwaysShowSend, disabled, sendButtonProps, onSend, }: SendProps<TMessage>) => Element | null'.

example/tsconfig.json

  • error TS2339: Property 'propTypes' does not exist on type '<TMessage extends IMessage = IMessage>({ text, containerStyle, children, textStyle, label, alwaysShowSend, disabled, sendButtonProps, onSend, }: SendProps<TMessage>) => Element | null'.

formatjs/formatjs

29 of 36 projects failed to build with the old tsc and were ignored

packages/react-intl/integration-tests/tsconfig.json

gothinkster/realworld

1 of 2 projects failed to build with the old tsc and were ignored

apps/documentation/tsconfig.json

  • error TS2339: Property 'all' does not exist on type '<K extends keyof typeof dictionary>(key: K) => ({ 'skipLink.label': string; 'search.label': string; 'search.ctrlKey': string; 'search.cancelLabel': string; 'search.devWarning': string; 'themeSelect.accessibleLabel': string; ... 33 more ...; 'expressiveCode.terminalWindowFallbackTitle'?: string | undefined; } & T)[K]'.

heroui-inc/heroui

2 of 85 projects failed to build with the old tsc and were ignored

packages/core/react/tsconfig.json

packages/components/select/tsconfig.json

packages/components/popover/tsconfig.json

packages/components/modal/tsconfig.json

packages/components/menu/tsconfig.json

packages/components/listbox/tsconfig.json

packages/components/dropdown/tsconfig.json

packages/components/drawer/tsconfig.json

packages/components/date-picker/tsconfig.json

packages/components/autocomplete/tsconfig.json

hoarder-app/hoarder

3 of 17 projects failed to build with the old tsc and were ignored

apps/web/tsconfig.json

hotwired/stimulus

tsconfig.test.json

tsconfig.json

immich-app/immich

2 of 7 projects failed to build with the old tsc and were ignored

server/tsconfig.json

server/tsconfig.build.json

@typescript-bot
Copy link
Collaborator

@sandersn Here are some more interesting changes from running the top 400 repos suite

Details

jupyterlab/jupyterlab

48 of 59 projects failed to build with the old tsc and were ignored

packages/ui-components/examples/simple-windowed-list/tsconfig.json

packages/statusbar/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/statusbar.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/statusbar.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/tokens.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/statusbar' or its corresponding type declarations.

packages/services/examples/typescript-browser-with-output/tsconfig.json

@typescript-bot
Copy link
Collaborator

@sandersn Here are some more interesting changes from running the top 400 repos suite

Details

mayooear/gpt4-pdf-chatbot-langchain

tsconfig.json

  • error TS2339: Property 'defaultProps' does not exist on type '({ color, style, }: { color: string; style: string; }) => Element'.
  • error TS2741: Property 'style' is missing in type '{ color: string; }' but required in type '{ color: string; style: string; }'.

microsoft/vscode

5 of 55 projects failed to build with the old tsc and were ignored

src/tsconfig.tsec.json

build/tsconfig.build.json

mui/material-ui

22 of 84 projects failed to build with the old tsc and were ignored

test/tsconfig.json

packages-internal/test-utils/tsconfig.json

packages/mui-utils/tsconfig.json

packages/mui-system/tsconfig.json

packages/mui-system/test/typescript/moduleAugmentation/gridCustomBreakpoints.tsconfig.json

packages/mui-system/test/typescript/moduleAugmentation/boxSx.tsconfig.json

packages/mui-styles/tsconfig.json

packages/mui-styled-engine-sc/tsconfig.json

packages/mui-styled-engine/tsconfig.json

packages/mui-private-theming/tsconfig.json

packages/mui-material/tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/typographyVariants.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/themeGetCssVar.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/themeCustomNode.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/themeCssVariables.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/themeComponents.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/textFieldCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/tabsCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/tableCellCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/systemTheme.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/styleOverridesCallback.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/reponsiveFontSizes.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/progressProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/paletteColors.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/gridCustomBreakpoints.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/formHelperTextCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/createTheme.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/buttonCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/breakpointsOverrides.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/badgeCustomProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/autocompleteCustomSlotProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/appBarProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/alertCustomSlotProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/TooltipSlotSxProps.tsconfig.json

packages/mui-material/test/typescript/moduleAugmentation/InputLabelCustomProps.tsconfig.json

packages/mui-lab/tsconfig.json

packages/mui-joy/tsconfig.json

packages/mui-joy/test/typescript/moduleAugmentation/themeOverrides.tsconfig.json

packages/mui-joy/test/typescript/moduleAugmentation/themeGetCssVar.tsconfig.json

packages/mui-joy/test/typescript/moduleAugmentation/CssVarsProvider.tsconfig.json

packages/mui-icons-material/tsconfig.json

packages/mui-docs/tsconfig.json

packages/mui-base/tsconfig.json

docs/tsconfig.json

docs/scripts/tsconfig.json

packages-internal/test-utils/tsconfig.build.json

packages/mui-joy/tsconfig.build.json

packages/mui-docs/tsconfig.build.json

nukeop/nuclear

1 of 10 projects failed to build with the old tsc and were ignored

packages/ui/tsconfig.json

  • error TS2339: Property 'defaultProps' does not exist on type '({ value, min, max, thumbSize, width, trackColor, height, fillColor, hideThumb, thumbColor, readOnly, onChange }: { value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }) => Element'.
  • error TS2339: Property 'propTypes' does not exist on type '({ value, min, max, thumbSize, width, trackColor, height, fillColor, hideThumb, thumbColor, readOnly, onChange }: { value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }) => Element'.
  • error TS2339: Property 'defaultProps' does not exist on type '(props: Notification) => Element'.
  • error TS2739: Type '{ value: number; height: number; width: string; onChange: (value: number) => void; min: number; max: number; fillColor: { r: number; g: number; b: number; a: number; }; trackColor: { r: number; g: number; b: number; a: number; }; thumbColor: { ...; }; }' is missing the following properties from type '{ value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }': thumbSize, hideThumb, readOnly
  • error TS2739: Type '{ value: number; height: number; width: string; onChange: (value: number) => void; fillColor: { r: number; g: number; b: number; a: number; }; trackColor: { r: number; g: number; b: number; a: number; }; thumbColor: { ...; }; }' is missing the following properties from type '{ value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }': min, max, thumbSize, hideThumb, readOnly

packages/app/tsconfig.json

  • error TS2339: Property 'propTypes' does not exist on type '({ seek, queue, fill, children }: { seek: any; queue: any; fill: any; children: any; }) => Element'.
  • error TS2339: Property 'defaultProps' does not exist on type '({ seek, queue, fill, children }: { seek: any; queue: any; fill: any; children: any; }) => Element'.
  • error TS2739: Type '{ value: any; min: any; max: any; fillColor: { r: number; g: number; b: number; a: number; }; trackColor: { r: number; g: number; b: number; a: number; }; thumbColor: { r: number; g: number; b: number; a: number; }; height: number; width: string; onChange: (e: any) => void; thumbSize: number; }' is missing the following properties from type '{ value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }': hideThumb, readOnly
  • error TS2339: Property 'status' does not exist on type '({ onFinishedPlaying }: { onFinishedPlaying: () => void; }) => any'.
  • error TS2339: Property 'defaultProps' does not exist on type '({ value, min, max, thumbSize, width, trackColor, height, fillColor, hideThumb, thumbColor, readOnly, onChange }: { value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }) => Element'.
  • error TS2339: Property 'propTypes' does not exist on type '({ value, min, max, thumbSize, width, trackColor, height, fillColor, hideThumb, thumbColor, readOnly, onChange }: { value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }) => Element'.
  • error TS2339: Property 'defaultProps' does not exist on type '(props: Notification) => Element'.
  • error TS2739: Type '{ value: number; height: number; width: string; onChange: (value: number) => void; min: number; max: number; fillColor: { r: number; g: number; b: number; a: number; }; trackColor: { r: number; g: number; b: number; a: number; }; thumbColor: { ...; }; }' is missing the following properties from type '{ value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }': thumbSize, hideThumb, readOnly
  • error TS2739: Type '{ value: number; height: number; width: string; onChange: (value: number) => void; fillColor: { r: number; g: number; b: number; a: number; }; trackColor: { r: number; g: number; b: number; a: number; }; thumbColor: { ...; }; }' is missing the following properties from type '{ value: any; min: any; max: any; thumbSize: any; width: any; trackColor: any; height: any; fillColor: any; hideThumb: any; thumbColor: any; readOnly: any; onChange: any; }': min, max, thumbSize, hideThumb, readOnly

omnivore-app/omnivore

3 of 23 projects failed to build with the old tsc and were ignored

packages/web/tsconfig.json

outline/outline

tsconfig.json

piotrwitek/react-redux-typescript-guide

playground/tsconfig.test.json

playground/tsconfig.json

pmndrs/jotai

1 of 8 projects failed to build with the old tsc and were ignored

tsconfig.json

@typescript-bot
Copy link
Collaborator

@sandersn Here are some more interesting changes from running the top 400 repos suite

Details

radix-ui/primitives

tsconfig.json

apps/ssr-testing/tsconfig.json

react-bootstrap/react-bootstrap

1 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2339: Property 'propTypes' does not exist on type '({ transition, ...props }: TabContainerProps) => Element'.
  • error TS2339: Property 'displayName' does not exist on type '({ transition, ...props }: TabContainerProps) => Element'.

test/tsconfig.json

  • error TS2339: Property 'propTypes' does not exist on type '({ transition, ...props }: TabContainerProps) => Element'.
  • error TS2339: Property 'displayName' does not exist on type '({ transition, ...props }: TabContainerProps) => Element'.

react-navigation/react-navigation

9 of 14 projects failed to build with the old tsc and were ignored

tsconfig.json

example/tsconfig.json

recharts/recharts

tsconfig.json

  • error TS2339: Property 'displayName' does not exist on type '({ gridType, radialLines, angleAxisId, radiusAxisId, cx: cxFromOutside, cy: cyFromOutside, innerRadius: innerRadiusFromOutside, outerRadius: outerRadiusFromOutside, ...inputs }: Props) => Element'.
  • error TS2339: Property 'registerSymbol' does not exist on type '({ type, size, sizeType, ...rest }: SymbolsProps) => Element'.

test/tsconfig.json

storybook/tsconfig.json

  • error TS2339: Property 'displayName' does not exist on type '({ gridType, radialLines, angleAxisId, radiusAxisId, cx: cxFromOutside, cy: cyFromOutside, innerRadius: innerRadiusFromOutside, outerRadius: outerRadiusFromOutside, ...inputs }: Props) => Element'.
  • error TS2339: Property 'registerSymbol' does not exist on type '({ type, size, sizeType, ...rest }: SymbolsProps) => Element'.

demo/tsconfig.json

  • error TS2339: Property 'displayName' does not exist on type '({ gridType, radialLines, angleAxisId, radiusAxisId, cx: cxFromOutside, cy: cyFromOutside, innerRadius: innerRadiusFromOutside, outerRadius: outerRadiusFromOutside, ...inputs }: Props) => Element'.
  • error TS2339: Property 'registerSymbol' does not exist on type '({ type, size, sizeType, ...rest }: SymbolsProps) => Element'.

reduxjs/react-redux

1 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

tsconfig.build.json

RSSNext/Follow

2 of 12 projects failed to build with the old tsc and were ignored

packages/utils/tsconfig.json

packages/components/tsconfig.json

apps/server/tsconfig.json

sequelize/sequelize

13 of 16 projects failed to build with the old tsc and were ignored

packages/utils/tsconfig.json

signalapp/Signal-Desktop

1 of 2 projects failed to build with the old tsc and were ignored

sticker-creator/tsconfig.json

sindresorhus/ky

tsconfig.json

  • error TS2559: Type '(input: Input, options?: Options | undefined) => ResponsePromise' has no properties in common with type 'Partial<Mutable<KyInstance>>'.

tsconfig.dist.json

  • error TS2559: Type '(input: Input, options?: Options | undefined) => ResponsePromise' has no properties in common with type 'Partial<Mutable<KyInstance>>'.

supabase/supabase

36 of 38 projects failed to build with the old tsc and were ignored

packages/ui/tsconfig.json

t3-oss/create-t3-app

upgrade/tsconfig.json

teableio/teable

22 of 25 projects failed to build with the old tsc and were ignored

packages/ui-lib/tsconfig.json

tldraw/tldraw

13 of 21 projects failed to build with the old tsc and were ignored

apps/docs/tsconfig.content.json

transitive-bullshit/agentic

45 of 46 projects failed to build with the old tsc and were ignored

packages/core/tsconfig.json

  • error TS2739: Type '(input: string | Msg) => MaybePromise<Output>' is missing the following properties from type 'AIFunction<InputSchema, Output>': inputSchema, parseInput, spec, impl

tremorlabs/tremor-npm

tsconfig.json

trpc/trpc

33 of 37 projects failed to build with the old tsc and were ignored

packages/server/tsconfig.benchmark.json

packages/react-query/tsconfig.json

packages/client/tsconfig.json

twentyhq/twenty

3 of 11 projects failed to build with the old tsc and were ignored

packages/twenty-website/tsconfig.json

usablica/intro.js

2 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2339: Property 'tour' does not exist on type '(elementOrSelector?: string | HTMLElement | undefined) => LegacyIntroJs'.
  • error TS2339: Property 'hint' does not exist on type '(elementOrSelector?: string | HTMLElement | undefined) => LegacyIntroJs'.
  • error TS2339: Property 'version' does not exist on type '(elementOrSelector?: string | HTMLElement | undefined) => LegacyIntroJs'.

vadimdemedes/ink

1 of 2 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2339: Property 'clear' does not exist on type '(str: string) => void'.
  • error TS2339: Property 'done' does not exist on type '(str: string) => void'.
  • error TS2739: Type '(str: string) => void' is missing the following properties from type 'LogUpdate': clear, done

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jan 30, 2025
@sandersn
Copy link
Member Author

Lots of usage of the un-annotated version. Plus in discussions after the design meeting, most people on the team think these semantics are reasonable for TS given that we've promised to support the same for function declarations.

@sandersn sandersn closed this Jan 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants